/**
 * @file board.h
 * @brief STM32F042F6P6 开发板引脚映射定义
 * @date 2025-11-01
 * @note 根据原理图自动生成
 */

#ifndef __BOARD_H__
#define __BOARD_H__

// =====================================================
// 功能启用宏定义（默认全部启用）
// =====================================================
#define FEATURE_CAN
#define FEATURE_PWM

// =====================================================
// MIDI 2.0 功能配置
// =====================================================
#define FEATURE_MIDI2_UMP           1   /* 启用MIDI 2.0 UMP支持 */
#define FEATURE_MIDI2_ATTRIBUTE     0   /* 启用Attribute处理 (可选) */
#define MIDI2_INTERNAL_16BIT_VEL    1   /* 内部使用16位velocity (0=转换为7位, 1=保留16位) */

// =====================================================
// PWM 硬件精度配置
// =====================================================
#define PWM_SYSCLK_HZ               48000000UL  /* 系统时钟 48MHz */
#define PWM_HARDWARE_RESOLUTION     (PWM_SYSCLK_HZ / 22000UL)  /* 硬件分辨率: 48MHz/22kHz=2181 */

/* PWM 占空比表示方式 */
#define PWM_DUTY_RESOLUTION_10000   10000       /* 传统 0.01% 精度 (0-10000) */
#define PWM_DUTY_RESOLUTION_MAX     PWM_HARDWARE_RESOLUTION  /* 最大硬件精度 (0-2181) */

// =====================================================



// =====================================================
// CAN 总线接口
// =====================================================
#ifdef FEATURE_CAN
#define CAN_TX_PIN          PA12
#define CAN_RX_PIN          PA11
#endif



// =====================================================
// PWM 输出引脚
// =====================================================
#ifdef FEATURE_PWM
#define PWM1_PIN            PB1
#define PWM2_PIN            PA7
#define PWM3_PIN            PA6
#define PWM4_PIN            PA5
#define PWM5_PIN            PA4
#define PWM6_PIN            PA3
#define PWM7_PIN            PA2
#define PWM8_PIN            PA1
#endif


// =====================================================
// 前端/后端/传感器接口
// =====================================================


#ifdef FEATURE_BACK_END
#define NTC_PIN             PA0
#endif


// =====================================================
// 电源转换（3.3V / 5V）
// =====================================================
#ifdef FEATURE_POWER
// 3.3V 和 5V 稳压电路由 VCC 供电
// 未分配 MCU 引脚
#endif

#endif /* __BOARD_H__ */
